home *** CD-ROM | disk | FTP | other *** search
- //------------------------------------------------------------------------------
- // File: RegBag.idl
- //
- // Desc: IDL source for RegBag.dll.
- //
- // Copyright (c) 1999-2001, Microsoft Corporation. All rights reserved.
- //------------------------------------------------------------------------------
-
-
- cpp_quote("//+-------------------------------------------------------------------------")
- cpp_quote("//")
- cpp_quote("// Microsoft Windows")
- cpp_quote("// Copyright (C) Microsoft Corporation, 1999-2001.")
- cpp_quote("//")
- cpp_quote("//--------------------------------------------------------------------------")
- cpp_quote("#pragma once")
-
- #ifndef DO_NO_IMPORTS
- import "objidl.idl";
- import "oaidl.idl";
- import "ocidl.idl";
- #endif
-
- //*****************************************************************************
- ///////////////////////////////////////////////////////////////////////////////
- //
- // Custom Factory interface
- // since com doesn't support ctors or initialization parameters on std factory interface
- // we have a custom creation interface
- //
- ///////////////////////////////////////////////////////////////////////////////
- //*****************************************************************************
- ///////////////////////////////////////////////////////////////////////////////////////
- [object,
- hidden, restricted,
- uuid(8A674B48-1F63-11d3-B64C-00C04F79498E),
- helpstring("Create property bag backed by registry"),
- pointer_default(unique),
- local
- ]
- interface ICreatePropBagOnRegKey : IUnknown {
- // NOTE: it is up to the caller to set the correct registry access based on the interface
- // and methods the caller intends to use
- // IPropertyBag2::GetPropertyInfo and CountProperties require both KEY_QUERY_VALUE and KEY_ENUMERATE_SUBKEYS
- // IPropertyBagXXX::Read requires KEY_READ
- // IPropertyBagXXX::Write requires KEY_WRITE
- // also, you must CoTaskMemFree the name string from GetPropertyInfo
- // if you write a value of VT_EMPTY or VT_NULL the property will be removed from the bag and the corresponding
- // registry info will be deleted.
- HRESULT Create([in] HKEY hkey, [in] LPCOLESTR subkey, [in] DWORD ulOptions, [in] DWORD samDesired, REFIID iid, [out] LPVOID *ppBag);
- };
-
-